home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 March / Macworld (1998-03) (Disk 1).dmg / Shareware World / Utilities / Text Processing / Alpha / Tcl / Modes / javaScriptMode.tcl < prev    next >
Encoding:
Text File  |  1997-11-02  |  2.5 KB  |  87 lines  |  [TEXT/ALFA]

  1. ## -*-Tcl-*-
  2.  # ###################################################################
  3.  #  JavaScript mode - tools for editing JavaScript documents
  4.  # 
  5.  #  FILE: "javaScriptMode.tcl"
  6.  #                                    created: 97-02-09 14.00.54 
  7.  #                                last update: 97-11-01 17.55.02 
  8.  #  Author: Johan Linde
  9.  #  E-mail: <jl@theophys.kth.se>
  10.  #     www: <http://bach.theophys.kth.se/~jl/Alpha.html>
  11.  #  
  12.  # Version: 1.0.5
  13.  # 
  14.  # Copyright 1997 by Johan Linde
  15.  #  
  16.  # This software may be used freely, and distributed freely, as long as the 
  17.  # receiver is not obligated in any way by receiving it.
  18.  #  
  19.  # If you make improvements to this file, please share them!
  20.  # 
  21.  # ###################################################################
  22.  ##
  23.  
  24. alpha::mode JScr 1.0.5 JScrDummy {*.js *.JS} {} {
  25. } uninstall this-file maintainer {
  26.     "Johan Linde" jl@theophys.kth.se <http://www.theophys.kth.se/~jl/Alpha.html>
  27. } help {file "HTML Help"}
  28.  
  29. newPref f elecRBrace 1 JScr
  30. newPref v prefixString {//}  JScr
  31. newPref f elecLBrace 1 JScr
  32. newPref f electricSemi 1 JScr
  33. newPref f electricColon 1 JScr
  34. newPref f wordWrap 0 JScr
  35. newPref v funcExpr {^function *([+-a-zA-Z0-9]+)} JScr
  36. newPref v parseExpr {^function *([+-a-zA-Z0-9]+)} JScr
  37. newPref v wordBreak {\w+} JScr
  38. newPref v wordBreakPreface {\W} JScr
  39. newPref f electricTab 0 JScr
  40. newPref v stringColor    green JScr
  41. newPref v commentColor red JScr
  42. newPref v keywordColor blue JScr
  43.  
  44.  
  45. regModeKeywords  -e {//} -b {/*} {*/} -c $JScrmodeVars(commentColor) -k $JScrmodeVars(keywordColor)  -s $JScrmodeVars(stringColor) JScr {
  46.     break case continue default do for in function if else new return switch this var while with true false }
  47.  
  48.  
  49. proc JScrDummy {} {}
  50.  
  51.  
  52. proc JScr::carriageReturn {} {
  53.     if {[lookAt [expr [getPos] - 1]] == ":"} {
  54.         if { [lookAt [getPos]] == "\r" } {
  55.             bind::IndentLine
  56.             endOfLine
  57.             insertText "\r"
  58.         } else {
  59.             set pos [getPos]
  60.             endOfLine
  61.             set t [getText $pos [getPos]]
  62.             replaceText $pos [getPos] ""
  63.             bind::IndentLine
  64.             endOfLine
  65.             insertText "\r"
  66.             insertText $t
  67.         }
  68.     } else {
  69.         insertText "\r"
  70.     }
  71.     bind::IndentLine
  72. }
  73.  
  74. proc JScr::DblClick {from to} {
  75.     global HOME
  76.     select $from $to
  77.     set word [getText $from $to]
  78.     if {[grep "^$word$" [lindex [glob $HOME:JSreference:index*] 0]] != ""} {
  79.         editMark [lindex [glob $HOME:JSreference:JS*] 0] $word -r
  80.     }
  81. }
  82.  
  83. set commentCharacters(JScr:General) [list "*" "//"]
  84. set commentCharacters(JScr:Paragraph) [list "/* " " */" " * "]
  85. set commentCharacters(JScr:Box) [list "/*" 2 "*/" 2 "*" 3]
  86.  
  87.